As seen before, you can change the signature of the whole set of instruments by normalshapemediumseriesnormalshapemediumseries\generalsignature n where n > 0 means a number of sharps, n < 0 means a number of flats. Or, you may prefer to change the signature of only one or two instruments by the statement:
normalshapemediumseries\signr=s
where r is the roman numeral of the instrument considered, and s its
specific signature. Since you may change simultaneously (with respect to the
score) but consecutively (with respect to your code) the signatures of
several instruments, this change takes place only when you say
normalshapemediumseriesnormalshapemediumseries\changesignature (within a bar) or
normalshapemediumseriesnormalshapemediumseries\changecontext (after
a single vertical rule) or
normalshapemediumseriesnormalshapemediumseries\Changecontext (after a double vertical
rule).
In the same way, you may want to change the active clefs.
This is done by
normalshapemediumseries
normalshapemediumseriesnormalshapemediumseries\cleftoksr={ { s1} { s2} { s3} { s4} } %
where r is the roman numeral of the instrument, s1
specifies the clef of the lower staff, s2 the clef of the second staff,
etc. One must always give four values with the above syntax, otherwise...
s1 = 6 means the bass clef (clef de fa in French), s1 = 0 means
the violin clef (clef de sol in French), s1 = 1 through s1 = 5
mean the alto clef (clef d'ut in French) set on first (lower)
through fifth (upper line of the staff).
As seen above in the case of signatures, several clefs may be changed at the
same time; thus all the clef changes become operational only when the macro
normalshapemediumseriesnormalshapemediumseries\changeclefs is coded. Normal usage consists in issuing this
command before the bar, not after (this helps the music player when the
change happens across a line break).
Caution should be exercized when changing clefs when beams are pending: in fact the normalshapemediumseriesnormalshapemediumseries\changeclefs perturbate the computation of beams and this command should be invoked only
If a clef change has to be typeset when one or several beams are pending, the operation should be done in a more manual way:
\charnote0{\smallclefdesol}
(resp.
\charnote0{\smallclefdefa}
or \charnote0{\smallclefdut}
) where
you like it and at the right staff (i.e. within normalshapemediumseries\notes, normalshapemediumseries\
Notes... — normalshapemediumseries\enotes pairs) to type set the wanted clef symbol.
which was coded as:
\begin{music} \def\nbinstruments{1}\relax \def\freqbarno{9999}% no bar numbers \nbporteesi=2\relax \cleftoksi={6000}\generalsignature{-3}% 3 flats \debutextrait \normal \off{1em}\temps\Notes\larpeggio{E}5\zq{EI}\qu{N}% \charnote0{\smallclefdesol}\relax \nextstaff\qsk\ibl0e{-1}\zq{eg}\qb0l\zq{d}\qb0k\enotes \cleftoksi={0000}\saveclefs\Notes\tbu0\zq{ce}\qh0j\relax \nextstaff\zq{sn}\cl{l}\enotes \Notes\zq{be}\qu{i}\nextstaff\zq{sn}\ql{l}\enotes \cleftoksi={6000}\changeclefs\Notes\zq{E}\cu{I}\relax \nextstaff\ibbu1h{-1}\zq{ae}\qh1h\tbu1\zq{N}\qh1g\enotes \finextrait \end{music}
Meter changes are implemented the same way:
normalshapemediumseries\metertoksr={ { m1} { m2} { m3} { m4} } %
where r is the roman numeral of the instrument, m1 specifies the meter
of the lower staff, m2 the meter of the second staff, etc. One must always
give four values with the above syntax, otherwise... Since meter changes
are meaningful only across bars, they are actually taken in account with
normalshapemediumseriesnormalshapemediumseries\changecontext or
normalshapemediumseriesnormalshapemediumseries\Changecontext or
normalshapemediumseriesnormalshapemediumseries\alaligne
or
normalshapemediumseriesnormalshapemediumseries\alapage.